package net.sk.china.city.mapper;

import java.util.List;
import net.sk.china.city.domain.ArActivityRecord;
import net.sk.china.city.domain.dto.activity.Job;
import net.sk.china.city.domain.dto.analyse.ActivityRankDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 活动记录Mapper接口
 * 
 * @author ruoyi
 * @date 2024-04-07
 */
@Mapper
public interface ArActivityRecordMapper 
{
    /**
     * 查询活动记录
     * 
     * @param pkId 活动记录主键
     * @return 活动记录
     */
    public ArActivityRecord selectArActivityRecordByPkId(Long pkId);

    /**
     * 查询活动记录列表
     * 
     * @param arActivityRecord 活动记录
     * @return 活动记录集合
     */
    public List<ArActivityRecord> selectArActivityRecordList(ArActivityRecord arActivityRecord);

    /**
     * 新增活动记录
     * 
     * @param arActivityRecord 活动记录
     * @return 结果
     */
    public int insertArActivityRecord(ArActivityRecord arActivityRecord);

    /**
     * 修改活动记录
     * 
     * @param arActivityRecord 活动记录
     * @return 结果
     */
    public int updateArActivityRecord(ArActivityRecord arActivityRecord);

    /**
     * 删除活动记录
     * 
     * @param pkId 活动记录主键
     * @return 结果
     */
    public int deleteArActivityRecordByPkId(Long pkId);

    /**
     * 批量删除活动记录
     * 
     * @param pkIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArActivityRecordByPkIds(Long[] pkIds);

    int insertJobList(@Param("jobList") List<Job> jobList, @Param("activityId") Long activityId);

    int insertJob(@Param("job") Job job, @Param("activityId") Long activityId);

    int updateJob(@Param("job") Job job, @Param("activityId") Long activityId);

    List<ArActivityRecord> selectAllActivityRecordByActivityIdList(@Param("completeActivityIdList") List<Long> completeActivityIdList);

    int completeRecord(Long pkId);

    List<ActivityRankDTO> selectTop5Activity(String orderKey);
}
